package com.example.demo.enums;

// enum这个关键字，可以理解为跟class差不多，这也个单独的类。可以看到，上面的例子里面有属性，
// 有构造方法，有getter，也可以有setter，但是一般都是构造传参数。还有其他自定义方法。
// FIXME 那么在这些东西前面的，以逗号隔开的，最后以分号结尾的，这部分叫做，这个枚举的实例。
//  也可以理解为，class  new 出来的实例对象。这下就好理解了。只是，class，new对象，可以自己随便new，想几个就几个，而这个enum关键字，他就不行，他的实例对象，只能在这个enum里面体现。也就是说，他对应的实例是有限的。
/**
 * 【参考】
 * 枚举类名建议带上Enum后缀，枚举成员名称需要全大写，单词间用下划线隔开。
 * 说明：枚举其实就是特殊的常量类，且构造方法被默认强制私有。
 * 正例：枚举名字：DealStatusEnum；成员名称：SUCCESS / UNKOWN_REASON。
 * 【强制】
 * 所有的枚举类型字段必须要有注释，说明每个数据项的用途。
 * */
public enum TypeEnum {
    FIREWALL("firewall"),
    SECRET("secretMac"),
    BALANCE("f5");

    String typeName;

    TypeEnum(String typeName) {
        this.typeName = typeName;
    }

    public static TypeEnum formTypeName(String typeName){
        for (TypeEnum typeEnum : TypeEnum.values()) {
            if (typeEnum.getTypeName().equals(typeName)) {
                return typeEnum;
            }
        }
        return null;
    }

    public String getTypeName() {
        return this.typeName;
    }
}
